Skip to content

[Fix] Fast misses Slack follow-ups after peer mentions - #2407

Open
roomote-roomote[bot] wants to merge 5 commits into
developfrom
fix/slack-quiet-participation-2iatmqif1lz7o
Open

[Fix] Fast misses Slack follow-ups after peer mentions#2407
roomote-roomote[bot] wants to merge 5 commits into
developfrom
fix/slack-quiet-participation-2iatmqif1lz7o

Conversation

@roomote-roomote

@roomote-roomote roomote-roomote Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

​Opened on behalf of @daniel-lxs. Follow up by mentioning @roomote-roomote, in the web UI, or in Slack.

Related issue

Maintainer-requested refinement; no linked public issue.

Why this PR exists

  • A maintainer explicitly invited this PR in the linked issue or discussion
  • I am a maintainer / this is internal Roomote work

Replace the human-to-human admission cutoff in established Fast Slack threads with a per-message advisory, without reconstructing or storing participation state.

What changed

  • Established Fast threads return from the admission check before the peer-mention/interjection cutoff. Subsequent otherwise eligible messages reach Fast. Linked-user authorization, unrelated-channel filters and legacy task-thread routing remain unchanged.
  • When the current human-authored channel message mentions another user, excluding Roomote and the sender, append a quiet-participation reminder to existing agentContext. Messages explicitly directed at Roomote are not cautioned. The reminder is untrusted supplemental context, separate from authored text, asking Fast to remain quiet unless directly addressed from then on.
  • No history-derived advisory state: removed priorMessages, latestDirectAddress, directlyAddressesRoomote, hasPeerDiscussion, the plain-name reset heuristic, and associated state tests/comments. Ordinary pre-existing history retrieval still provides thread context and attachments; it does not regenerate the reminder.
  • Preserve the existing context field through queued/native delivery. Quiet-eligible Slack turns can use existing silent completion; a small Slack-only guard prevents asides from superseding parked requests. No global prompt, instruction-version, schema, or new persistent-state mechanism.

The reminder remains ordinary model conversation context. It is not reattached to later messages without a peer mention and may be lost through context compaction. Model compliance is advisory, not a hard tool restriction. More admitted messages incur inference cost. Existing mention parsing cannot distinguish another app's user ID from a human without an additional lookup; none is added.

How it was tested

  • 75 focused Slack routing/processing tests passed, including Fast cutoff bypass, subsequent admission, current-message attachment, exclusion cases, and a regression proving history alone does not regenerate the reminder.
  • 103 SDK admission/delivery tests passed for the retained queued-context/silence and parked-request safeguards.
  • API and SDK typechecks passed; pre-push oxlint, residual ESLint, full fast typechecks and knip passed.
  • Earlier broader Slack run had two unrelated DB failures from the sandbox schema missing work_items.result_accepted_at; that broader suite was not rerun. No live-model or visual validation claimed.
  • Verified GitHub PR head and remote branch both equal fc419ff6c1f5564b6d0790675979c2e84b6f39e1. Reviewed the actual base-to-head diff; removed history-state symbols are absent. PR not merged.

Checklist

  • The PR title follows the repo convention: [Fix], [Feat], [Improve], [Refactor], [Docs], or [Chore] followed by a user-facing description
  • This PR is small and scoped to one change
  • pnpm lint and pnpm check-types pass locally
  • I added tests or included a clear manual validation note above
  • I removed secrets, tokens, private keys, and customer data from code, logs, and screenshots
  • If this change should appear in the changelog, I ran pnpm changeset

The exact full commands in the checklist were not run; affected-package typechecks and pre-push gates passed. No changeset was added.

@roomote-community

roomote-community Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

No code issues found. See task

Reviewed fc419ff6

@roomote-roomote
roomote-roomote Bot marked this pull request as ready for review September 9, 2026 16:05
@roomote-roomote

roomote-roomote Bot commented Sep 11, 2026

Copy link
Copy Markdown
Contributor Author

Pushed and verified fc419ff6: GitHub PR head and remote branch match that SHA. Removed priorMessages, latestDirectAddress, directlyAddressesRoomote, hasPeerDiscussion, the leading-name reset logic, and history-state tests/comments from fast-agent.ts / fast-agent-processing.test.ts.

The actual final diff retains the established-Fast-thread cutoff bypass in message-entry.ts and attaches the reminder solely from the current peer-mention message. Pre-existing history retrieval remains for ordinary context/attachments, not advisory reconstruction. Existing context delivery and small quiet-eligibility safeguards remain; no global prompt/schema/instruction-version redesign.

75 focused Slack tests and 103 SDK tests pass, plus affected typechecks and pre-push gates. The reminder is ordinary model context, not guaranteed persistent state; no live-model silence claim. Earlier unrelated DB-test schema failures remain disclosed in the refreshed PR body. PR not merged.

@roomote-roomote roomote-roomote Bot changed the title [Fix] Slack follow-ups disappear after human side discussions [Improve] Add a peer-conversation hint to admitted Slack messages Sep 11, 2026
@roomote-roomote roomote-roomote Bot changed the title [Improve] Add a peer-conversation hint to admitted Slack messages [Fix] Fast misses Slack follow-ups after peer mentions Sep 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant